home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "modQBE"
- Option Explicit
- 'Data Types for SQL
- '-----------------------------------------------------------------
- Public Enum DataTypes
- dt_text
- dt_bool
- dt_date
- dt_int
- End Enum
- Public Sub ClearFields(ByVal PassedForm As Form)
-
- Dim i%
-
- For i% = 1 To PassedForm.Count - 1
- If TypeName(PassedForm(i%)) = "TextBox" Then
- PassedForm(i%).Text = ""
- End If
-
- If TypeName(PassedForm(i%)) = "ComboBox" Then
- PassedForm(i%).Text = ""
- PassedForm(i%).ListIndex = -1
- End If
-
- If TypeName(PassedForm(i%)) = "MaskEdBox" Then
- If InStr(PassedForm(i%).Tag, "Date") <> 0 Then
- PassedForm(i%) = " "
- PassedForm(i%).Mask = ""
- PassedForm(i%).Mask = "##/##/####"
- End If
-
-
- If InStr(PassedForm(i%).Tag, "Phone") <> 0 Then
- 'PassedForm(i%) = " "
- PassedForm(i%).Mask = "0"
- PassedForm(i%).Mask = "(###)###-####"
- End If
-
- End If
-
- If TypeName(PassedForm(i%)) = "RichTextBox" Then
- PassedForm(i%).Text = ""
- End If
-
- If TypeName(PassedForm(i%)) = "CheckBox" Then
- PassedForm(i%).Value = False
- End If
-
- If TypeName(PassedForm(i%)) = "Data" Then
- PassedForm(i%).RecordSource = ""
- PassedForm(i%).Enabled = False
- End If
-
- Next i%
- End Sub
-
- Public Function DoQuery(psForm As Form, _
- psTable As String, _
- dcData As Data, _
- Optional psSQL As String, _
- Optional OrderBy As String) As Boolean
-
-
-
-
-
- Dim i%
- Dim mSQL$, bAnd$, bOr$, Sql$
-
- mSQL$ = "Select * From " & psTable & " Where "
- Sql$ = psSQL$
-
- 'loop through all the controls and see if any data is in them and then
- ' build SQL statement based on their data field.
-
- For i% = 1 To psForm.Count - 1
- If Sql$ = "" Then
- bAnd$ = ""
- bOr$ = ""
- Else
- bAnd$ = " and "
- bOr$ = " or "
- End If
-
- 'Text Box, RichTextBox
- If TypeName(psForm(i%)) = "TextBox" Or TypeName(psForm(i%)) = "RichTextBox" Then
-
- Sql$ = Sql$ + bAnd$ + psForm(i%).DataField + " Like " + SQLValue("*" & psForm(i%).Text & "*", dt_text)
- End If
-
- 'ComboBox
- If TypeName(psForm(i%)) = "ComboBox" Then
- If psForm(i%).ListIndex <> -1 Then
- Sql$ = Sql$ + bAnd$ + psForm(i%).DataField + " = " + SQLValue(psForm(i%).Text, dt_text)
- End If
- End If
-
- 'CheckBox
- If TypeName(psForm(i%)) = "CheckBox" Then
- If psForm(i%).Value = 1 Then
- Sql$ = Sql$ + bAnd$ + psForm(i%).DataField + " = True"
- End If
- End If
-
- 'Masked Edit
- If TypeName(psForm(i%)) = "MaskEdBox" Then
- If InStr(psForm(i%).Tag, "dt_date") > 0 Then
- If IsDate(Format$(psForm(i%), "##/##/####")) Then
- Sql$ = Sql$ + bAnd$ + psForm(i%).DataField + " Like " + SQLValue(Format(psForm(i%), "&&/&&/&&&&"), dt_date)
- End If
- Else
- End If
- End If
- Next i%
- ClearFields psForm
- 'enable data control - does the work for us!
- dcData.Enabled = True
-
- 'check for criteria
- If Sql$ <> "" Then
- If OrderBy <> "" Then
- Sql$ = Sql$ + " Order By " + OrderBy
- End If
- dcData.RecordSource = mSQL$ & Sql$
- dcData.Refresh
- Else
- MsgBox "No Criteria Selected...", vbExclamation
- dcData.Enabled = False
- Exit Function
- DoQuery = False
- End If
-
- If Not dcData.Recordset.EOF And Not dcData.Recordset.BOF Then
- DoQuery = True
- Else
- MsgBox "No Records Found", vbExclamation
- DoQuery = False
- End If
-
- dcData.Enabled = False
-
- End Function
-
- Public Function SQLValue(FieldData As String, DataType As DataTypes) As Variant
-
-
- Select Case DataType
- Case Is = dt_text
- SQLValue = Chr(34) + Trim(FieldData) + Chr(34)
- Case Is = dt_bool
- SQLValue = "True"
- Case Is = dt_date
- SQLValue = "#" + Trim(FieldData) + "#"
- Case Is = dt_int
- SQLValue = Trim$(FieldData)
- Case Else
- SQLValue = Trim$(FieldData)
- End Select
-
-
- End Function
-
-